home *** CD-ROM | disk | FTP | other *** search
/ The CICA Windows Explosion! / The CICA Windows Explosion! - Disc 2.iso / programr / vlib250.zip / MODELLIB.H < prev    next >
C/C++ Source or Header  |  1994-10-18  |  4KB  |  119 lines

  1. /*****************************************************************************
  2.  
  3.                     Modellib Header File
  4.                     Copyright (c) 1994
  5.                     Visual Tech Co.
  6.                     P.O.Box 8735
  7.                     Fort Wayne, IN 46898-8735
  8.  
  9. *****************************************************************************/
  10.  
  11. #ifdef __cplusplus
  12. extern "C" {
  13. #endif
  14.  
  15. typedef DWORD HBODY;
  16. typedef DWORD HFACE;
  17. typedef DWORD HEDGE;
  18. typedef DWORD HVERT;
  19.  
  20. #define    BODYHDL    HBODY WINAPI
  21. #define    EDGEHDL    HEDGE WINAPI
  22. #define    FACEHDL    HFACE WINAPI
  23. #define    VERTHDL HVERT WINAPI
  24.  
  25. typedef    HBODY FAR    *LPHBODY;
  26.  
  27. typedef struct {
  28.     VECTOR3    p;                // start point of the line.
  29.     VECTOR3    v;                // segment vector of the line.
  30. } LINE, FAR *LPLINE;
  31.  
  32. typedef struct {
  33.     VECTOR3    n;                // unified plane normal.
  34.     REAL    e;                // negative distance from the origin/
  35. } PLANE, FAR *LPPLANE;
  36.  
  37. /* --------------------   REAL EXTENTS  --------------------   */
  38.  
  39. typedef struct {                /* bounding box */
  40.     VECTOR3    pmin;
  41.     VECTOR3    pmax;
  42. } BBOX, FAR *LPBBOX;
  43.  
  44. /* ----------------------  BASE  -------------------- */
  45.  
  46. typedef struct {
  47.     VECTOR    orgin;
  48.     VECTOR    dir;
  49. } AXLE, FAR *LPAXLE;
  50.  
  51. typedef struct {
  52.     VECTOR3    origin;
  53.     VECTOR3    xvect;
  54.     VECTOR3 zvect;
  55. } BASE, FAR *LPBASE;
  56.  
  57. /* ======================================================================== */
  58.  
  59. #define      DEPTH            1
  60. #define      THROUGH          2
  61. #define      ALL_WAY          3
  62.  
  63. BODYHDL    NewNose (LPPOINT3D p, REAL r1, REAL r2, WORD n);
  64. BODYHDL    NewReducer (LPPOINT3D p, REAL r1, REAL r1i, REAL r2, REAL r2i, WORD n);
  65.  
  66. BODYHDL    NewBlock(REAL l, REAL w, REAL h);
  67. BODYHDL    NewPyramid(REAL bl, REAL bw, REAL tx, REAL ty, REAL h);
  68. BODYHDL    NewDome(REAL r, REAL h, WORD n);
  69. BODYHDL    NewBall(REAL r);
  70. BODYHDL    NewSphere(REAL r, WORD n);
  71. BODYHDL    NewTorus(REAL r1, REAL r2, WORD n1, WORD n2);
  72. BODYHDL    NewExtrusion(LPPOINT3D q1, LPPOINT3D q2, WORD m, REAL sa);
  73. BODYHDL    NewRevolution(LPPOINT3D p, WORD m, WORD n, REAL a);
  74. BODYHDL    NewSweep(LPPOINT3D prof, WORD m, LPPOINT3D path, VECTOR scale, WORD n, BOOL open);
  75.  
  76.  
  77. BODYHDL    NewCylinder (REAL r, REAL h, WORD n);
  78. BODYHDL    NewCone (REAL r, REAL h, WORD n);
  79. BODYHDL    NewTube (REAL r, REAL t, REAL h, WORD n);
  80. BODYHDL    NewHexahedron (REAL bl, REAL bw, REAL tl, REAL tw, REAL tx, REAL ty, REAL h);
  81. BODYHDL    NewFrustum (REAL bl, REAL bw, REAL tl, REAL tw, REAL h);
  82. BODYHDL    NewBox (REAL l, REAL w, REAL h);
  83. BODYHDL    NewCube (LPPOINT3D p1, LPPOINT3D p2);
  84. BODYHDL    NewPrismoid (LPPOINT3D vertex, WORD n, REAL scale, REAL dx, REAL dy, REAL dz);
  85.  
  86. BOOLEAN    BodyWireframe (HDC hdc, HBODY hbody);
  87. BOOLEAN    BodyFacets (HDC hdc, HBODY hbody);
  88. BOOLEAN    BodyShade (HDC hdc, HBODY hbody);
  89.  
  90. FACEHDL    PickBodyFace (HBODY hbody, LPPOINT3D p);
  91. VERTHDL    PickBodyVert (HBODY hbody, LPPOINT3D p);
  92. EDGEHDL    PickBodyEdge (HBODY hbody, LPPOINT3D p);
  93.  
  94. BODYHDL    UniteBody (HBODY a, HBODY b);
  95. BODYHDL    SubtractBody (HBODY a, HBODY b);
  96. BODYHDL    IntersectBody (HBODY a, HBODY b);
  97. BODYHDL    SectionBody (HBODY s, LPPLANE pl);
  98.  
  99. BODYHDL    DrillBody (HBODY hb, LPLINE axis, REAL r, WORD depth);
  100. BODYHDL    MortiseBody (HBODY hb, LPBASE base, REAL w, REAL h, WORD depth);
  101. BODYHDL    PunchBody (HBODY hb, LPPOINT3D p, WORD m, VECTOR v, REAL h, REAL sa, WORD depth);
  102. SGLWORD    SplitBody (HBODY hb, LPPLANE pl, LPHBODY body);
  103. BODYHDL    ChamferBodyFace (HBODY hb, HFACE hf, REAL depth);
  104. BODYHDL    ChamferBodyEdge (HBODY hb, HEDGE he, REAL depth);
  105. BODYHDL    ChamferBodyVert (HBODY hb, HVERT hv, REAL depth);
  106. BODYHDL    SliceBody (HBODY hb, LPPLANE pl);
  107.  
  108. BODYHDL    CutThroughBody (HBODY hb, LPPLANE pl, LPPOINT3D where);
  109. VOIDED    SeparateBodyShells (HBODY hb);
  110.  
  111. BOOLEAN    FreeBody (HBODY hbody);
  112. VOIDED    TranslateBody (HBODY hbody, REAL x, REAL y, REAL z);
  113. VOIDED    RotateBody (HBODY hbody, LPLINE axis, REAL angle);
  114. VOIDED    CleanupMemory (void);
  115.  
  116. #ifdef __cplusplus
  117. }
  118. #endif
  119.